import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Esta clase representa a un objeto menu que permite al usuario decidir si <p>
 * quiere agregar los barcos al tablero de forma manual o aleatoria.
 * 
 * @author Miguel Martinez Aguilar
 * @version 10 de Mayo del 2013
 */
public class CreaFlota_menu extends ScrollActor
{
    // Declaracion de variables de instancia
    private Desicion[] boton;// es un arreglo de 2 botones que toman la desicion del jugador sobre como agregar los barcos al tablero.
    private CreaFlota creador;// es el objeto CreaFlota.
    
    /**
     * Este es el constructor de CreaFlota_menu.
     * @param creador: el objeto CreaFlota que creara y colocara los barcos.
     */
    public CreaFlota_menu(CreaFlota creador) 
    {
        boton = new Desicion[2];
        boton[0] = new Desicion(this,"manual",0);
        boton[1] = new Desicion(this,"aleatorio",1);
        this.creador = creador;
    }
    
    /**
     * Este metodo prepara este menu para que el usuario tome su desicion sobre la forma <p>
     * en como se agregaran los barcos (manual o aleatorio). Agrega los botones correspondientes.
     */
    public void preparar() 
    {
        ScrollWorld mundo = super.getWorld();// este metodo nos permite acceder al mundo
        mundo.addObject(boton[0], this.getX() - 75, this.getY() + 35);
        mundo.addObject(boton[1], this.getX() + 75, this.getY() + 35);
    }
    
    /**
     * Este metodo entrega la decision del usuario de como ingresara los barcos.
     * Tambien este metodo elimina a este objeto y sus botones.
     * @param val: boleano que indica la desicion del usuario de como se colocaran los barcos.
     */
    public void decision(boolean val)
    {
        ScrollWorld mundo = super.getWorld();// este metodo nos permite acceder al mundo
        if(val)creador.preparar(true);
        else creador.preparar(false);
        mundo.removeObject(boton[0]);
        mundo.removeObject(boton[1]);
        mundo.removeObject(this);
    }
}
